#ifndef FILE_TRANSFER_CLIENT_H
#define FILE_TRANSFER_CLIENT_H

#include <QString>
#include <QStringList>

class FileTransferClient {
public:
    FileTransferClient(const QString &host, quint16 port);

    // bool uploadFile(const QString &filePath, const QString &username, QString &errorMsg);
    // bool downloadFile(const QString &filename, const QString &savePath, const QString &username, QString &errorMsg);
    
    // 上传文件
    bool uploadFile(const QString &username, const QString &filePath, QString &errorMsg, QWidget *parentForProgress = nullptr);
    
    // 下载文件
    bool downloadFile(const QString &username, const QString &filename, const QString &savePath, QString &errorMsg, QWidget *parentForProgress = nullptr);

    QStringList listServerFiles(const QString &username, QString &errorMsg);
    bool deleteFile(const QString &filename, const QString &username, QString &errorMsg);

    QString getLogContent(const QString &username, QString &errorMsg);
    QString resolveDuplicateFilename(const QString &username, const QString &filename);



private:
    QString serverHost;
    quint16 serverPort;
};

#endif // FILE_TRANSFER_CLIENT_H
